package fachada;

import java.util.Collection;
import java.util.List;

import usuario.Usuario;
import usuario.UsuarioNegocio;

import contato.Contato;
import contato.ContatoNegocio;
import erros.ContatoExiste;
import erros.UsuarioInexistente;
import erros.UsuarioVazio;

public class Fachada {

	private ContatoNegocio contatoNegocio;
	private UsuarioNegocio usuarioNegocio;
	
	public Fachada(){
		contatoNegocio = new ContatoNegocio();
		usuarioNegocio = new UsuarioNegocio();
	}

	public void inserirContato(Contato contato) throws ContatoExiste{
		contatoNegocio.inserirContato(contato);
	}

	public void alterarContato(Contato contato) {
		contatoNegocio.alterarContato(contato);
	}

	public void removerContato(Contato contato) {
		contatoNegocio.removerContato(contato);
	}

	public Contato consultarContatoPorId(Integer id) {
		return contatoNegocio.consultarContatoPorId(id);
	}

	public void inserirColecaoContatos(Collection<Contato> contatos) {
		contatoNegocio.inserirColecaoContatos(contatos);
	}

	public List<Contato> listarTodosContatos() {
		return contatoNegocio.listarTodosContatos();
	}

	public void inserirUsuario(Usuario usuario) throws Exception {
		usuarioNegocio.inserirUsuario(usuario);
	}

	public void alterarUsuario(Usuario usuario) {
		usuarioNegocio.alterarUsuario(usuario);
	}

	public Usuario efetuarLogin(String login, String senha) throws UsuarioInexistente, UsuarioVazio {
		return usuarioNegocio.efetuarLogin(login, senha);
	}

	public void removerUsuario(Usuario usuario) {
		usuarioNegocio.removerUsuario(usuario);
	}

	public Usuario consultarUsuarioPorId(Integer id) {
		return usuarioNegocio.consultarUsuarioPorId(id);
	}

	public void inserirColecaoUsuario(Collection<Usuario> usuarios) {
		usuarioNegocio.inserirColecaoUsuario(usuarios);
	}

	public List<Usuario> listarTodosUsuarios() {
		return usuarioNegocio.listarTodosUsuarios();
	}
	
	public List<Contato> listarContatosPorUsuario(Usuario usuario) {
		return contatoNegocio.listarContatosPorUsuario(usuario);
	}	
}
